var loader_img = "<img src=\"../engine/img/loading3.gif\"></img>";
//var loader_img = "<div class=\"loading\"><img src=\"engine/img/loading3.gif\"></img><div>Loading...</div></div>";
function open(jsp,arr,jspdx){
    //Setto a font normal tutti i menu left
    $("#left ul li").attr("class","li_unselect");
    //Setto a bold li del menu che selezionato
    $("#"+jsp.replace(".jsp", "")).attr("class","li_select");
    //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
    $("#center").html(loader_img);
    // Eseguo la chiamata post sulla jsp con gli array di attributi
    $.post('center/'+jsp,arr, function(data) {
        //Scrivo il risultato
        $("#center").html(data);
    });
    
    if(jspdx!=null){
        // Carico l'immagine di loader per la parte dx
        $("#right").html(loader_img);
        // Eseguo la chiamata post sulla jsp con gli array di attributi
        $.post('right/'+jspdx,arr, function(data) {
            //Scrivo il risultato
            $("#right").html(data);
        });
    }else{
        $("#right").html(loader_img);
        // Eseguo la chiamata post sulla jsp con gli array di attributi
        $.post('right/'+jsp,arr, function(data) {
            //Scrivo il risultato
            $("#right").html(data);
        });
    }
}

function search(jsp,arr,result){
    if(result==null){
        if(arr==null){
            arr={};
        }
        //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
        $("#search-result").html(loader_img);
        arr["text"] = $("#search").val();
        $("#search-title").html("Search the part: " + $("#search").val());
        $("#search-result").html(loader_img);
        $.post('center/'+jsp,arr, function(data) {
            $("#search-result").html(data);
        });
    }else{
        if(arr==null){
            arr={};
        }
        $("#"+result).html(loader_img);
        arr["text"] = $("#search").val();
        $("#search-title").html("Search the part: " + $("#search").val());
        $("#search-result").html(loader_img);
        $.post('center/'+jsp,arr, function(data) {
            $("#"+result).html(data);
        });  
    }
}

function add_part_of_prod(part_id,prod_id){
    content="";
    content += "<tr id=\"part_of_prod_" + part_id + "\"  >";
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .codice").html()+"</td>";
    
    //Aggiungo l'html del a perche non devo protarmi dietro il link'
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .addpart a").html()+"</td>";
    
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .anno").html()+"</td>";
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .dataora").html()+"</td>";
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .visibile").html()+"</td>";
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .homepage").html()+"</td>";
    content += "<td>"+$("#search_part_of_prod_"+part_id +" .promo").html()+"</td>";
    
    // non posso prendere la classe delete peerche il metodo js e diverso "del_part"
    content += "<td><a title=\"Delete Part\" href=\"javascript:del_part_of_prod("+part_id+"," + prod_id + ");\"><img id=\"delete_part_" + part_id + "\" src=\"../engine/img/delete_on.png\"></img></a></td>";
    
    alert("part_id: " +part_id +"\nprod_id:"+prod_id);
    
    // ATTENZIONE
    /* Nel caso io aggiungo un ricambio, poi lo cancello e poi lo riaggiungo succede che avendo messo 
     * un TR con id=x, fatto il fade out, il td non scompare ma viene messo invisibile {css(display:none)}
     * quindi nel caso succede questo non si deve aggiungere con after un'altro tr con id=x, 
     * perche questo comporterebbe 2 tr con lo stesso id uno visibile e l'altro invisibile. 
     * Quindi bisogna controllare se prima esiste gia il tr con quello id=x 
     * e nel caso esista farlo di nuovo visibile, altrimenti aggiungere con after
     **/
    
    if($("#part_of_prod_"+part_id).html()==null){
        $("#table-view-parts tr:last").after(content);
    }else{
        $("#part_of_prod_"+part_id).show();
    }
    
    
    $("#search_part_of_prod_"+part_id).fadeOut(400);
    
    $.post("../SetPartToProdServlet", {
        idprodotto:prod_id, 
        idricambio:part_id
    });
}

function del_part_of_prod(part_id,prod_id){
    $.post("../DelPartToProdServlet", {
        idprodotto:prod_id, 
        idricambio:part_id
    }, function(){
        $("#part_of_prod_"+part_id).fadeOut(400);
    });   
}



function add_prod_of_part(prod_id,part_id){
    content="";
    content += "<tr id=\"prod_of_part_" + prod_id + "\"  >";
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .codice").html()+"</td>";
    
    //Aggiungo l'html del a perche non devo protarmi dietro il link'
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .addpart a").html()+"</td>";
    
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .anno").html()+"</td>";
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .dataora").html()+"</td>";
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .visibile").html()+"</td>";
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .homepage").html()+"</td>";
    content += "<td>"+$("#search_prod_of_part_"+prod_id +" .promo").html()+"</td>";
    
    // non posso prendere la classe delete peerche il metodo js e diverso "del_part"
    content += "<td><a title=\"Delete Part\" href=\"javascript:del_prod_of_part("+prod_id+"," + part_id + ");\"><img id=\"delete_prod_" + prod_id + "\" src=\"../engine/img/delete_on.png\"></img></a></td>";
    
    
    // ATTENZIONE
    /* Nel caso io aggiungo un ricambio, poi lo cancello e poi lo riaggiungo succede che avendo messo 
     * un TR con id=x, fatto il fade out, il td non scompare ma viene messo invisibile {css(display:none)}
     * quindi nel caso succede questo non si deve aggiungere con after un'altro tr con id=x, 
     * perche questo comporterebbe 2 tr con lo stesso id uno visibile e l'altro invisibile. 
     * Quindi bisogna controllare se prima esiste gia il tr con quello id=x 
     * e nel caso esista farlo di nuovo visibile, altrimenti aggiungere con after
     **/
    
    if($("#prod_of_part_"+prod_id).html()==null){
        $("#table-view-products tr:last").after(content);
    }else{
        $("#prod_of_part_"+prod_id).show();
    }
    
    
    $("#search_prod_of_part_"+prod_id).fadeOut(400);
    
    $.post("../SetProdToPartServlet", {
        idprodotto:prod_id, 
        idricambio:part_id
    });
}

function del_prod_of_part(prod_id,part_id){
    $.post("../DelProdToPartServlet", {
        idprodotto:prod_id, 
        idricambio:part_id
    }, function(){
        $("#prod_of_part_"+prod_id).fadeOut(400);
    });   
}

function set_cat(cid){
    $(".box ul li").css("font-weight", "normal");
    $("#li_cat_"+cid).css("font-weight","bold");
    $("#categoria").val(cid);
}

function set_supercat(cid){
    $(".box ul li").css("font-weight", "normal");
    $("#li_cat_"+cid).css("font-weight","bold");
    $("#sopracategoria").val(cid);
}

function sel_cat(cid,cat_name){
    $(".box ul li").attr("class", "li-cat");
    $("#cat_"+cid).attr("class","li-cat-select");
    $("#title_cat").html(cat_name);
    $("#title_cat").show();
    $("#mod_cat").show();
    if($('#cat_'+cid).attr("subcat") == "0"){
        $("#del_cat").show();
    }else{
        $("#del_cat").hide();
    }
    $("#moveto_cat").show();
    $("#select-cat").val(cid);
    var type=$("#type_cat").val();
    $("#mod_cat a").attr("href", "javascript:open('mod_"+type+"_cat.jsp',{cid:"+cid+"})");
    $("#moveto_cat_pos").fadeOut(400);
}

function move_cat(move,response_jsp){
    
    $.post("../MoveCategoryServlet", {
        move:move,
        cid:$("#select-cat").val(),
        cid_to:$("#select-moveto-cat").val(), 
        position:$('#select-moveto-pos').val()
    }, function(){
        open(response_jsp);
    }); 
}


function promo(p_id){
    var addNews = false;
    if($("#img_promo_"+p_id).attr('src') == '../engine/img/notpromo.png' ){
        if(confirm('Add in the news section?')){
            addNews = true;
        }
        
    }
    $("#img_promo_"+p_id).attr('src','../engine/img/loading.gif');
    $.post('center/prod_change_promo.jsp',{
        pid:p_id,
        addnews:addNews
    }, function(img_promo) {
        $("#img_promo_"+p_id).attr('src','../engine/img/'+$.trim(img_promo));
    });
}

function homepage(p_id){
    $("#img_homepage_"+p_id).attr('src','../engine/img/loading.gif');
    $.post('center/prod_change_homepage.jsp',{
        pid:p_id
    }, function(img_homepage_) {
        $("#img_homepage_"+p_id).attr('src','../engine/img/'+$.trim(img_homepage_));
    });
}

function visibile(p_id){
    $("#img_visibile_"+p_id).attr('src','../engine/img/loading.gif');
    $.post('center/prod_change_visibile.jsp',{
        pid:p_id
    }, function(img_visibile) {
        $("#img_visibile_"+p_id).attr('src','../engine/img/'+$.trim(img_visibile));
    });
}

function sold(p_id){
    $("#img_venduto_"+p_id).attr('src','../engine/img/loading.gif');
    $.post('center/prod_change_venduto.jsp',{
        pid:p_id
    }, function(img_venduto) {
        $("#img_venduto_"+p_id).attr('src','../engine/img/'+$.trim(img_venduto));
    });
}

function show(box){
    $('.box').hide();
    $('#'+box).show();
    $('#dx-'+box).show();
}
function showAppend(box){
    $('#'+box).show();
}

function preview(iid,pid){
    $('#preview').fadeOut(400, function(){
        $("#preview #image").html(loader_img);
        $('#preview #image').html('<img src=\"../GetImageServlet?fid='+iid+'\"></img>');
        if($('#del_file_dx').html() == null){
            $('#image_dx').append('<li id="del_file_dx"><a href="javascript:del(\'file\','+iid+');">Delete Image</a></li>');
            $('#image_dx').append('<li id="cover_file_dx"><a href="javascript:set_cover('+iid+','+pid+');">Set Cover Image</a></li>');
        }else{
            $('#del_file_dx').html('<a href="javascript:del(\'file\','+iid+');">Delete Image</a>');
            $('#cover_file_dx').html('<a href="javascript:set_cover('+iid+','+pid+');">Set Cover Image</a>');
        }
        $('#preview').fadeIn(400);
    });
}

function set_cover(iid,pid){
    $.post('../SetCoverFileServlet',{
        idprodotto:pid,
        idfile:iid
    }, function() {
        $(".img_cover").remove();
        $("#file_"+iid).append("<p class=\"img_cover\">COVER</p>");
    });
    
}

function del(type,oid,uid_logged){
    if(confirm("Proceed to delete?")){
        if(type == 'prod'){
            if(confirm('If this product has the news associated, will be DELETED.\n\nContinue?')){
                $.post('../DeleteProdottoServlet',{
                    idprodotto:oid
                }, function() {
                    $("#prod_"+oid).fadeOut(400);
                });
            }
        }
        if(type == 'part'){
            $.post('../DeleteProdottoServlet',{
                idprodotto:oid
            }, function() {
                $("#part_"+oid).fadeOut(400);
            });
        }
        if(type == 'file'){
            $.post('../DeleteFileServlet',{
                idfile:oid
            }, function() {
                $("#preview").fadeOut(400);
                $("#file_"+oid).fadeOut(400);
            });
        }
        if(type == 'cat'){
            var cid = $('#select-cat').val();
            var prod = parseInt($('#cat_'+cid).attr("prods"));
            if(prod>0){
                if(confirm('This category has associated products.\n\nIf you continue you will LOSE all its related products, images and news.\n\nContinue?')){
                    if($('#cat_'+cid).attr("subcat") == "0"){
                        $.post('../DeleteCategoriaServlet',{
                            idcategoria:$('#select-cat').val()
                        }, function(data) {
                            open(jQuery.trim(data));
                        });
                    }
                    else{
                        alert('You can NOT delete the category because it has subcategories.')
                    } 
                }
            }else{
                if($('#cat_'+cid).attr("subcat")== "0"){
                    $.post('../DeleteCategoriaServlet',{
                        idcategoria:$('#select-cat').val()
                    }, function(data) {
                        open(jQuery.trim(data));
                    });
                }
                else{
                    alert('You can NOT delete the category because it has subcategories.')
                }
            }
        }
        if(type == 'user'){
            if(uid_logged!=oid){
                $.post('../DeleteUtenteServlet',{
                    idutente:oid,
                    iduser_go_news:$("#ot_admin").val()
                }, function() {
                    $("#user_"+oid).fadeOut(400);
                    $.fancybox.close();
                });
            }
            else{
                alert("Cannot delete administrator! There is only one administrator or you want delete an administrator that he's now logged in!");
            }
        }
        if(type == 'news'){
            $.post('../DeleteNewsServlet',{
                idnews:oid
            }, function() {
                $("#news_"+oid).fadeOut(400);
            });
        }
    }
}


/*   PER FARE FUNZIONARE I SALVATAGGI
 *   I valori delle textarea si devono recuperare cosi
 *   
 *   $("#descrizione_homepage").prev().children().html();
 *   
 */

function save(type,servlet){
    if($("#formBox").valid()){
        if(type == 'prod'){
            //Prima DEVO caricare l'array altrimenti con il caricamento del loading perdo tutte le info
            if($("#categoria").val()!=-1){
                var arr_prod ={
                    nome:$("#nome").val(),
                    descrizione: $("#descrizione").prev().children().html(),
                    homepage: $('#homepage_val').val(),
                    descrizione_homepage: $("#descrizione_homepage").prev().children().html(),
                    anno: $("#anno").val(),
                    codice: $("#codice").val(),
                    prezzo: $("#prezzo").val(),
                    offerta: $('#offerta_val').val(),
                    ricambio: $("#ricambio").val(),
                    stato:'NON-VISIBILE',
                    categoria:$("#categoria").val(),
                    //visualizzazioni:$("#visualizzazioni").val(),
                    moneta:$("#moneta").val(),
                    pezzi:$("#pezzi").val(),
                    vis_prezzo:$('#visibile_prezzo_val').val(),
                    venduto:false,
                    modello:$("#modello").val(),
                    condizioni:$("#condizioni").val()
                };
                if(servlet==null){
                    $("#center").html(loader_img);
                    $.post('../AddProdottoServlet',arr_prod, function() {
                        open('list_prod.jsp');
                    });
                }else{  
                    arr_prod["idprodotto"] = $("#idprodotto").val();
                    $("#center").html(loader_img);
                    $.post('../'+servlet,arr_prod, function() {
                        open('list_prod.jsp');
                    });
                }
            }
            else{
                alert("You must select a category for this product!");
            }
        }
    
        if(type == 'part'){
            if($("#categoria").val()!=-1){
                var arr_part ={
                    nome:$("#nome").val(),
                    descrizione: $("#descrizione").prev().children().html(),
                    homepage: $('#homepage_val').val(),
                    descrizione_homepage: $("#descrizione_homepage").prev().children().html(),
                    anno: $("#anno").val(),
                    codice: $("#codice").val(),
                    prezzo: $("#prezzo").val(),
                    offerta: $('#offerta_val').val(),
                    ricambio: $("#ricambio").val(),
                    stato:'NON-VISIBILE',
                    categoria:$("#categoria").val(),
                    //visualizzazioni:$("#visualizzazioni").val(),
                    moneta:$("#moneta").val(),
                    pezzi:$("#pezzi").val(),
                    vis_prezzo:$('#visibile_prezzo_val').val(),
                    venduto:false,
                    modello:$("#modello").val(),
                    condizioni:$("#condizioni").val()
                };
                if(servlet==null){
                    //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                    $("#center").html(loader_img);
                    $.post('../AddProdottoServlet',arr_part, function() {
                        open('list_part.jsp');
                    });
                }else{
                    arr_part["idprodotto"] = $("#idprodotto").val();
                    //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                    $("#center").html(loader_img);
                    $.post('../'+servlet,arr_part, function() {
                        open('list_part.jsp');
                    });
                }
            }
            else{
                alert("You must select a category for this part!");
            }
        }
    
        if(type == 'news'){
            //Prima DEVO caricare l'array altrimenti con il caricamento del loading perdo tutte le info
            var arr_news ={
                titolo:$("#titolo").val(),
                testo: $("#testo").prev().children().html(),
                utente: $("#utente").val()
            };
            if(servlet==null){
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../AddNewsServlet',arr_news, function() {
                    open('list_news.jsp');
                });
            }else{
                arr_news["idnews"] = $("#idnews").val();
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../'+servlet,arr_news, function() {
                    open('list_news.jsp');
                });
            }
        }
    
        if(type == 'prod_cat'){
            //Prima DEVO caricare l'array altrimenti con il caricamento del loading perdo tutte le info
            var arr_prod_cat ={
                nome:$("#nome").val(),
                ordine: $("#ordine").val(),
                ricambio: $("#ricambio").val(),
                sopracategoria: $("#sopracategoria").val()
            };
            if(servlet==null){
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../AddCategoriaServlet',arr_prod_cat, function() {
                    open('list_prod_cat.jsp');
                });
            }else{
                arr_prod_cat["idcategoria"] = $("#idcategoria").val();
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../'+servlet,arr_prod_cat, function() {
                    open('list_prod_cat.jsp');
                });
            }
        }
    
        if(type == 'part_cat'){
            //Prima DEVO caricare l'array altrimenti con il caricamento del loading perdo tutte le info
            var arr_part_cat ={
                nome:$("#nome").val(),
                ordine: $("#ordine").val(),
                ricambio: $("#ricambio").val(),
                sopracategoria: $("#sopracategoria").val()
            };
            if(servlet==null){
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../AddCategoriaServlet',arr_part_cat, function() {
                    open('list_part_cat.jsp');
                });
            }else{
                arr_part_cat["idcategoria"] = $("#idcategoria").val();
                //Carico l'immagine di loader per visualizzarla in attesa della chiamata post
                $("#center").html(loader_img);
                $.post('../'+servlet,arr_part_cat, function() {
                    open('list_part_cat.jsp');
                });
            }
        }
    
        if(type=='user'){
            var arr_user ={
                nome:$("#nome").val(),
                cognome: $("#cognome").val(),
                user: $("#user").val(),
                password: $("#password").val(),
                tipo: $("#tipo").val()
            };
            if(servlet==null){
                $.post('../AddUtenteServlet',arr_user, function() {
                    open('list_user.jsp');
                });
            }else{
                arr_user["idutente"] = $("#idutente").val();
                $.post('../'+servlet,arr_user, function() {
                    open('list_user.jsp');
                });
            }
        }
    
        if(type=='opt'){
            var arr ={
                emailcontatto:$("#emailcontatto").val(),
                smtphost: $("#smtphost").val(),
                smtpuser: $("#smtpuser").val(),
                smtppassword: $("#smtppassword").val(),
                smtpport: $("#smtpport").val(),
                smtpstrategy: $("#smtpstrategy").val(),
                maxrecordpag: $("#maxrecordpag").val(),
                maxrecordpagadmin: $("#maxrecordpagadmin").val(),
                idopzioni: $("#idopzioni").val(),
                news_title_promo : $("#news_title_promo").val(),
                news_text_promo : $("#news_text_promo").val()
            };
        
            $.post('../ModifyOpzioniServlet',arr, function() {
                open('options.jsp');
            });
        
        }
    }
}

function cat(pid,cid){
    if(confirm("Set this category?")){
        $.post('../SetCategoryProdServlet',{
            idprodotto:pid,
            idcategoria:cid
        }, function() {
            $(".view-cat li").attr("class", "li-cat");
            $("#cat_"+cid).attr("class","li-cat-select");
            
        })
    }
}


function logout(){
    if(confirm("Would you really logout from Adminstration?")){
        $.post('../LogoutAdminServlet',function() {
            window.location = "../index.jsp";
        });
    }
}

function login(){
    $.post('../LoginAdminServlet',{ 
        user: $("#username").val(), 
        password: $("#password").val()
    }
    , function(data) {
        if(data=="yes"){
            window.location = "enter.jsp";
        }else{
            $("#response").html("Error: Username or Password!!!");
        }
    });
}